package com.situ.mvc.interceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerInterceptor;
import org.springframework.web.servlet.ModelAndView;

public class MyInterceptor1 implements HandlerInterceptor{
	/**
	 * 第一次访问时候会调用构造方法创建MyInterceptor1对象，
	 * 后面再访问只是访问里面的方法
	 */
	public MyInterceptor1() {
		System.out.println("MyInterceptor1.MyInterceptor1()");
	}

	/**
	 * 执行Controler方法之前会执行该方法
	 * 返回true表示继续执行，返回false表示终止执行
	 * 用户权限验证，登录沿着永恒可以写到这里面
	 */
	@Override
	public boolean preHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2) throws Exception {
		System.out.println("MyInterceptor1.preHandle()");
		return true;
	}

	/**
	 * 执行Controler方法之后会执行这个方法
	 * 但是在返回ModelAndView之前
	 */
	@Override
	public void postHandle(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, ModelAndView arg3)
			throws Exception {
		System.out.println("MyInterceptor1.postHandle()");
	}

	/**
	 * 执行Controller方法之后并且ModelAndView视图已经返回的时候执行这个方法
	 */
	@Override
	public void afterCompletion(HttpServletRequest arg0, HttpServletResponse arg1, Object arg2, Exception arg3)
			throws Exception {
		System.out.println("MyInterceptor1.afterCompletion()");
	}

}
